package com.windea.study.kotlin.game.tankwar2.interfaces

/**显示的视图。*/
interface Entity {
	val x: Int
	val y: Int
	val width: Int
	val height: Int
	
	/**绘制视图。*/
	fun draw()
	
	/**检查碰撞。*/
	fun checkCollision(x: Int, y: Int, width: Int, height: Int): Boolean {
		return when {
			//如果 阻挡物 在运动物的上方时，不碰撞
			this.y + this.height <= y -> false
			//如果 阻挡物 在运动物的右方时，不碰撞
			this.x + this.width <= x -> false
			//如果 阻挡物 在运动物的下方时，不碰撞
			x + height <= this.x -> false
			//如果 阻挡物 在运动物的左方时，不碰撞
			y + height <= this.y -> false
			else -> true
		}
	}
	
	/**检查碰撞。*/
	fun checkCollision(other: Entity): Boolean = this.checkCollision(other.x, other.y, other.width, other.height)
}
